
2.2.1 概述
使用 XML 来添加动画可以很大限度地提高代码复用性,但有时只需要临时使用一个动画,就没有必要单独写一个 XML 动画文件了,可以使用代码的方法生成一个动画操作。
| 标签 | 类 |
|---|---|
| scale | ScaleAnimation |
| alpha | AlphaAnimation |
| rotate | RotateAnimation |
| translate | TranslateAnimation |
| set | AnimationSet |
Animation 类中共用的属性方法:
| 标签属性 | 方 法 | 说明 |
|---|---|---|
| android:duration | setDuration(long) | 动画的运行时间 (以毫秒为单位);必须设置 |
| android:fillAfter | setFillAfter(boolean) | 动画结束时是否保持动画最后的状态;默认为 false,优先于 fillBefore。 |
| android:fillBefore | setFillBefore(boolean) | 动画结束时是否还原到开始动画前的状态;默认为 true。 |
| android:fillEnabled | setFillEnabled(boolean) | 是否应用 fillBefore 的值,对 fillAfter 无影响;默认为true。 |
| android:repeatCount | setRepeatCount(int) | 重复次数,取值为整数或 Animation.INFINITE。 |
| android:repeatMode | setRepeatMode(int) | 重复类型有两个值,reverse 表示倒序回放,restart 表示从头播放 |
| android:interpolator | setInterpolator(Interpolator) | 设定插值器(指定的动画效果,譬如回弹等) |
| android:detachWallpaper | setDetachWallpaper(boolean) | |
| android:startOffset | setStartOffset(long) | 调用 start 函数之后等待开始运行的时间,单位为毫秒 |
| android:zAdjustment | setZAdjustment(int) | 表示被设置动画的内容运行时在 Z 轴上的位置(top / bottom / normal),默认为 normal。 |
2.2.2 ScaleAnimation
|
|
pivotXType 取值为:
Animation.ABSOLUTE、Animation.RELATIVE_TO_SELF、Animation.RELATIVE_TO_PARENT。
示例:
对应代码:
2.2.3 AlphaAnimation
|
|
示例:
对应代码:
2.2.4 RotateAnimation
|
|
pivotXType 取值为:
Animation.ABSOLUTE、Animation.RELATIVE_TO_SELF、Animation.RELATIVE_TO_PARENT
示例:
对应代码:
2.2.5 TranslateAnimation
|
|
示例:
对应代码:
2.2.6 AnimationSet
|
|
shareInterpolator 参数取值为 true 时,用于 AnimationSet 类中定义一个插值器,其下面的所有动画共用该插值器;取值为 false,则表示其下面的动画定义各自的插值器。增加动画的函数:
示例:
对应代码:
2.2.7 Animation
Animation 还有一些比较实用的方法介绍,如下:
| 方法 | 说明 |
|---|---|
| cancel() | 取消动画 |
| reset() | 将控件重置到动画开始前状态 |
| hasStarted() | 判断当前 Animation 是否开始 |
| hasEnded() | 判断当前 Animation 是否结束 |
| setAnimationListener() | 设置动画监听 |
Animation.AnimationListener:
示例:

